﻿using System;
using System.Collections.Generic;
using NExt.Core.Model.Base;

namespace NExt
{
    public class DatePicker : DatePicker<DatePickerEvents>
    {
    }

    public abstract class DatePicker<TEvents>: Component<TEvents>
        where TEvents : DatePickerEvents, new()
    {
        protected DatePicker()
        {
            dayNames = new List<string>();
            disabledDays = new List<int>();
            monthNames = new List<string>();
        }

        public string cancelText { get; set; }
        public bool? constrainToViewport { get; set; }
        public IList<string> dayNames { get; set; }
        public RegExp disabledDatesRE { get; set; }
        public string disabledDatesText { get; set; }
        public IList<int> disabledDays { get; set; }
        public string disabledDaysText { get; set; }
        public string format { get; set; }
        public DateTime? maxDate { get; set; }
        public string maxText { get; set; }
        public DateTime? minDate { get; set; }
        public string minText { get; set; }
        public IList<string> monthNames { get; set; }
        public string monthYearText { get; set; }
        public string nextText { get; set; }
        public string okText { get; set; }
        public string prevText { get; set; }
        public int? startDay { get; set; }
        public string todayText { get; set; }
        public int? todayTip { get; set; }
    }

    public class DatePickerEvents: ComponentEvents
    {
        public IScript select { get; set; }
    }
}
